Micron Document

Interface
Part 4/6 • 18.6 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Auto-connect


Reticulum can auto-connect to discovered interfaces, automatically bringing interfaces up and down based on their availability.

In RNS, enable interface discovery with discover_interfaces = true and set autoconnect_discovered_interfaces to a number greater than 0.

Bootstrap


Interfaces can be configured as temporary bootstrap connections, discovering and auto-connecting to more suitable connections before disconnecting themselves.

In RNS, to use an interface for bootstrapping, set bootstrap_only = true in its definition. It relies on interface discovery and auto-connection, so make sure these features are also enabled in the configuration (see above).

IFAC


Interfaces can be configured with an IFAC to control who can communicate directly with the interface.

In RNS, to enable IFAC on an interface, simply specify a network_name and/or a passphrase in its definition.

Gravity

In RNS, interfaces may be given a gravity. If multiple interfaces receive the same announce, the interface with the highest gravity wins the path table entry. This is especially useful for transport nodes with public endpoints where users continually connect and disconnect, resulting in stale paths.

The default gravity is 0 by default, or a number defined by default_gravity (and autoconnect_interface_gravity for when auto-connecting).cite-ref-7[7]

Types

RNS has a wide range of built-in interface types:

AutoInterface – IPv6 multicast-based peer discovery (docs).
BackboneInterface – High-performance, resource-efficient interface for Linux/Android (docs).
TCPServerInterface – Allows TCPClientInterfaces to connect over the Internet or private IPv4/IPv6 networks (docs).
TCPClientInterface – Connects to a remote TCPServerInterface over the Internet or private IPv4/IPv6 networks (docs).
UDPInterface – Provides UDP-based communication (docs).
I2PInterface – Routes data through the I2P network for anonymous communication (docs).
RNodeInterface – Interfaces with an RNode for digital radio communication (docs).
RNodeMultiInterface – For RNodes with multiple LoRa transceivers, allows sub-interfaces to be configured individually (docs).
SerialInterface – Enables communication over serial lines and devices (docs).
PipeInterface – Interfaces with any program via stdin and stdout (docs).
KISSInterface – Interfaces with KISS protocol-compatible packet radio modems (docs).
AX25KISSInterface – Interfaces with AX.25 KISS protocol devices for amateur radio communication (docs).
WeaveInterface – Interfaces with Weave devices over serial connections (source).

As well as support for custom interfacescite-ref-8[8]:

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────